package acceptanceTests.writingAmessage;
//

public interface WritingAmessageInt {
	/**
	 * 
	 * @param userName : a string for a registered user
	 * @return : return a topic (as Object) where the user can add a new message
	 */
	public Object getLegalTopicForNewMessage(String userName);
	/**
	 * 
	 * @param userName : a string for a registered user
	 * @return : a string as a path of the selections that leads the user to a place where he
	 *  can't add a new message. like "121" far selecting from home page option 1, option 2, option 1
	 */
//	public String getIlLegalPathForMessage(String userName);
	/**
	 * 
	 * @param subject :	the subject of the new message
	 * @param body : the content of the new message
	 * @param topic : the topic (as Object) where the message is placed
	 * @param userName : the user name of the user that adds the message 
	 * @return : true for a successful add, false otherwise 
	 */
	//public boolean writeNewMessage(String subject,String body, Object topic, String userName);
	/**
	 * 
	 * @param subject :	the subject of the new message
	 * @param body : the content of the new message
	 * @param path : string of the selections that leads the user to a place where he can add 
	 * a new message
	 * @param userName : the user name of the user that adds the message
	 * @return : true for a successful add, false otherwise 
	 */
	//public boolean writeNewMessage(String subject,String body, String path, String userName);
	/**
	 * 
	 * @param message
	 * @return : the topic that the message belongs to
	 */
	public Object getMessageTopic(Object message);
	/**
	 * 
	 * @param topic
	 * @return : the path to the message from home page: "121" from home page option 1, option 2, 
	 * option 1
	 */
	//public String getTopicPath(Object topic);
	/**
	 * 
	 * @param topic
	 * @return : the number of messages in the topic (only messages!)
	 */
//	public int getNumberOfMessagesForTopic(Object topic);
	/**
	 * 
	 * @return : the number of messages in the forum (only messages!)
	 */
//	public int getNumberOfMessagesForForum();
	/**
	 * 
	 * @param userName : a string for a registered user
	 * @return :  : the number of messages the user is an owner of
	 */
	//public int getNumberOfMessagesForUser(String userName);
	/**
	 * 
	 * @param message
	 * @return : the user name of the owner of the message
	 */
	public String getOwnerName(Object message);
	/**
	 * 
	 * @param subject :	the subject of the new message
	 * @param body : the content of the new message
	 * @param topic : the topic (as Object) where the message is placed
	 * @param userName : the user name of the user that adds the message 
	 */
	//public void writeAndCancle(String subject,String body, Object topic, String userName);
	/**
	 * 
	 * @param topic
	 * @return : the latest message that was added to the topic
	 */
//	public Object getNewestMessageForTopic(Object topic);
	/**
	 * 
	 * @return: the latest message that was added to the forum
	 */
//	public Object getNewestMessageForForum();
	/**
	 * 
	 * @param message
	 * @return : true if the new message is presented with the topic menu, false otherwise
	 */
//	public boolean isMessagePresentedWithTopic(Object message);
	/**
	 * 
	 * @return : returns a string for a registered user name
	 */
//	public String getRandomRegisteredUserName();
	/**
	 * 
	 * @param subject :	the subject of the new message
	 * @param body : the content of the new message
	 * @param topic : the topic (as Object) where the message is placed
	 * @param userName : the user name of the user that adds the message 
	 * @return : the message that was now added
	 */
	public Object writeNewMessageReturnsMessage(String subject,String body, Object topic, String userName);

	public boolean deleteMessage(Object message);
	
	
	
}
